package com.woniuxy.service;

import com.nimbusds.jose.JOSEException;
import com.woniuxy.dto.RegisterDTO;
import com.woniuxy.dto.UserDTO;
import com.woniuxy.entity.User;
import com.woniuxy.util.ResponseUtil;

/**
 * 用户服务接口
 * 定义用户相关的业务逻辑接口
 */
public interface UserService {
    /**
     * 管理员和医生端登录
     * @param user 用户信息
     * @return 登录结果
     * @throws JOSEException JWT异常
     */
    ResponseUtil login(User user) throws JOSEException;
    
    /**
     * 居民端登录
     * @param user 用户信息
     * @return 登录结果
     * @throws JOSEException JWT异常
     */
    ResponseUtil residentLogin(User user) throws JOSEException;

    /**
     * 添加用户
     * @param registerDTO 用户信息
     * @return 添加结果
     */
    ResponseUtil registerResident(RegisterDTO registerDTO) throws InterruptedException;


    /**
     * 修改用户登录信息
     * @param userDTO 用户信息
     * @return 查询结果
     */
    ResponseUtil updatePasswordById(UserDTO userDTO);

    /**
     * 管理员或医生注册
     * @param registerDTO 注册信息
     * @return 注册结果
     */
    ResponseUtil registerAdminOrDoctor(RegisterDTO registerDTO);
}
